package com.tjetc;

import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalUnit;

/**
 * @author gaoyongxiang
 * @version v1.0
 * @since 2025-10-17
 */
public class TestJedis {

    // 基础连接
    @Test
    public void connectRedis() {
        //1. 创建redis的客户端
        Jedis jedis = new Jedis("172.16.190.133", 6379);
        System.out.println(jedis);
        //2. 如果有密码 就需要添加密码验证 没有可以略过
//        jedis.auth("");
        //3. 测试是否可以连通redis
        System.out.println("jedis.ping() = " + jedis.ping());
        //4. 使用完毕关闭redis
        jedis.close();
    }

    // 测试String类型
    @Test
    public void connectString() {
        //1. 创建redis的客户端
        Jedis jedis = new Jedis("172.16.190.133", 6379);

        // 测试添加key
        String s = jedis.set("k1", "v1");
        System.out.println(s);

        String v = jedis.get("k1");
        System.out.println("v = " + v);

        jedis.close();
    }

    // Redis的连接池
    @Test
    public void redisPool() {
        JedisPoolConfig config = new JedisPoolConfig();
        // 最大连接数
        config.setMaxTotal(100);
        // 最长等待时间
        config.setMaxWait(Duration.of(100, ChronoUnit.MILLIS));
        // 最小空闲连接
        config.setMinIdle(1);

        JedisPool jedisPool = new JedisPool(config, "172.16.190.133", 6379);
        // 从连接池中获取一个连接
        Jedis jedis = jedisPool.getResource();
        System.out.println(jedis);

    }


}
